home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / UNIX / C / INDENT / GLOBS.C < prev    next >
C/C++ Source or Header  |  1989-08-31  |  2KB  |  67 lines

  1. /* Copyright (C) 1986, 1989 Free Software Foundation, Inc.
  2.  * All rights reserved.
  3.  *
  4.  * Redistribution and use in source and binary forms are permitted
  5.  * provided that the above copyright notice and this paragraph are
  6.  * duplicated in all such forms and that any documentation,
  7.  * advertising materials, and other materials related to such
  8.  * distribution and use acknowledge that the software was developed
  9.  * by the University of California, Berkeley, the University of Illinois,
  10.  * Urbana, and Sun Microsystems, Inc.  The name of either University
  11.  * or Sun Microsystems may not be used to endorse or promote products
  12.  * derived from this software without specific prior written permission.
  13.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  14.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  15.  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  16.  */
  17.  
  18. #include "indent_globs.h"
  19.  
  20. /* Like malloc but get error if no storage available.  */
  21.  
  22. char *
  23. xmalloc (size)
  24.      long size;
  25. {
  26.   register char *val = (char *) malloc (size);
  27.   if (!val)
  28.     {
  29.       fprintf (stderr,"indent: Virtual memory exhausted.\n");
  30.       exit (1);
  31.     }
  32.   return val;
  33. }
  34.  
  35. /* Like realloc but get error if no storage available.  */
  36.  
  37. char *
  38. xrealloc (ptr, size)
  39.      char *ptr;
  40.      long size;
  41. {
  42.   register char *val = (char *) realloc (ptr, size);
  43.   if (!val)
  44.     {
  45.       fprintf (stderr,"indent: Virtual memory exhausted.\n");
  46.       exit (1);
  47.     }
  48.   return val;
  49. }
  50.  
  51. /* Some systems lack memcpy so this does the same thing.
  52.    If your system-supplied memcpy is more efficient, you might want
  53.    to put "#define mymemcpy memcpy" in indent_globs.h.
  54.  
  55.    Copy LEN bytes starting at SRCADDR to DESTADDR.  Result undefined
  56.    if the source overlaps with the destination.  */
  57. char *
  58. mymemcpy (destaddr, srcaddr, len)
  59.      char *destaddr;
  60.      char *srcaddr;
  61.      int len;
  62. {
  63.   for (; len; len--)
  64.     *destaddr++ = *srcaddr++;
  65.   return destaddr;
  66. }
  67.